package com.yyfax.account.dao;

import com.yyfax.account.domain.AccountTradeFrozen;
import com.yyfax.account.vo.TradeSummary;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface AccountTradeFrozenDao {

	/**
	 * 插入数据
	 *
	 * @param record  记录
	 * @param segment 分表
	 * @return int
	 * @author liangqm
	 * @date 2018-01-15 19:11
	 * @since v2.0.3
	 */
	int insert(@Param("record") AccountTradeFrozen record, @Param("segment") String segment);

	/**
	 * 查询数据
	 *
	 * @param outTradeNo 外部交易号
	 * @param segment    分表
	 * @return int
	 * @author liangqm
	 * @date 2018-01-15 19:11
	 * @since v2.0.3
	 */
	AccountTradeFrozen queryOrderByOutTradeNo(@Param("outTradeNo") String outTradeNo, @Param("segment") String segment);

	/**
	 * 根据账户号和截止时间统计复合交易订单
	 *
	 * @param userIdSet 用户id集合
	 * @param beginDate 开始时间
	 * @param endDate   结束时间
	 * @param segment   分表序号
	 * @return List<TradeSummary>
	 * @author liangqm
	 * @date 2017-09-30 11:39:56
	 * @since v2.0.3
	 */
	List<TradeSummary> queryComplexTradeSumBatchByDate(@Param("userIdSet") Set<String> userIdSet, @Param("beginDate") String beginDate, @Param("endDate") String endDate, @Param("segment") String segment);
}